home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / gtk-2.0 / gtk / gtktextiter.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  13.1 KB  |  304 lines

  1. /* GTK - The GIMP Toolkit
  2.  * gtktextiter.h Copyright (C) 2000 Red Hat, Inc.
  3.  *
  4.  * This library is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU Lesser General Public
  6.  * License as published by the Free Software Foundation; either
  7.  * version 2 of the License, or (at your option) any later version.
  8.  *
  9.  * This library is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12.  * Lesser General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU Lesser General Public
  15.  * License along with this library; if not, write to the
  16.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  17.  * Boston, MA 02111-1307, USA.
  18.  */
  19.  
  20. /*
  21.  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  22.  * file for a list of people on the GTK+ Team.  See the ChangeLog
  23.  * files for a list of changes.  These files are distributed with
  24.  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  25.  */
  26.  
  27. #ifndef __GTK_TEXT_ITER_H__
  28. #define __GTK_TEXT_ITER_H__
  29.  
  30. #include <gtk/gtktexttag.h>
  31. #include <gtk/gtktextchild.h>
  32.  
  33. G_BEGIN_DECLS
  34.  
  35. typedef enum {
  36.   GTK_TEXT_SEARCH_VISIBLE_ONLY = 1 << 0,
  37.   GTK_TEXT_SEARCH_TEXT_ONLY    = 1 << 1
  38.   /* Possible future plans: SEARCH_CASE_INSENSITIVE, SEARCH_REGEXP */
  39. } GtkTextSearchFlags;
  40.  
  41. /*
  42.  * Iter: represents a location in the text. Becomes invalid if the
  43.  * characters/pixmaps/widgets (indexable objects) in the text buffer
  44.  * are changed.
  45.  */
  46.  
  47. typedef struct _GtkTextBuffer GtkTextBuffer;
  48.  
  49. #define GTK_TYPE_TEXT_ITER     (gtk_text_iter_get_type ())
  50.  
  51. struct _GtkTextIter {
  52.   /* GtkTextIter is an opaque datatype; ignore all these fields.
  53.    * Initialize the iter with gtk_text_buffer_get_iter_*
  54.    * functions
  55.    */
  56.   /*< private >*/
  57.   gpointer dummy1;
  58.   gpointer dummy2;
  59.   gint dummy3;
  60.   gint dummy4;
  61.   gint dummy5;
  62.   gint dummy6;
  63.   gint dummy7;
  64.   gint dummy8;
  65.   gpointer dummy9;
  66.   gpointer dummy10;
  67.   gint dummy11;
  68.   gint dummy12;
  69.   /* padding */
  70.   gint dummy13;
  71.   gpointer dummy14;
  72. };
  73.  
  74.  
  75. /* This is primarily intended for language bindings that want to avoid
  76.    a "buffer" argument to text insertions, deletions, etc. */
  77. GtkTextBuffer *gtk_text_iter_get_buffer (const GtkTextIter *iter);
  78.  
  79. /*
  80.  * Life cycle
  81.  */
  82.  
  83. GtkTextIter *gtk_text_iter_copy     (const GtkTextIter *iter);
  84. void         gtk_text_iter_free     (GtkTextIter       *iter);
  85.  
  86. GType        gtk_text_iter_get_type (void) G_GNUC_CONST;
  87.  
  88. /*
  89.  * Convert to different kinds of index
  90.  */
  91.  
  92. gint gtk_text_iter_get_offset      (const GtkTextIter *iter);
  93. gint gtk_text_iter_get_line        (const GtkTextIter *iter);
  94. gint gtk_text_iter_get_line_offset (const GtkTextIter *iter);
  95. gint gtk_text_iter_get_line_index  (const GtkTextIter *iter);
  96.  
  97. gint gtk_text_iter_get_visible_line_offset (const GtkTextIter *iter);
  98. gint gtk_text_iter_get_visible_line_index (const GtkTextIter *iter);
  99.  
  100.  
  101. /*
  102.  * "Dereference" operators
  103.  */
  104. gunichar gtk_text_iter_get_char          (const GtkTextIter  *iter);
  105.  
  106. /* includes the 0xFFFC char for pixmaps/widgets, so char offsets
  107.  * into the returned string map properly into buffer char offsets
  108.  */
  109. gchar   *gtk_text_iter_get_slice         (const GtkTextIter  *start,
  110.                                           const GtkTextIter  *end);
  111.  
  112. /* includes only text, no 0xFFFC */
  113. gchar   *gtk_text_iter_get_text          (const GtkTextIter  *start,
  114.                                           const GtkTextIter  *end);
  115. /* exclude invisible chars */
  116. gchar   *gtk_text_iter_get_visible_slice (const GtkTextIter  *start,
  117.                                           const GtkTextIter  *end);
  118. gchar   *gtk_text_iter_get_visible_text  (const GtkTextIter  *start,
  119.                                           const GtkTextIter  *end);
  120.  
  121. GdkPixbuf* gtk_text_iter_get_pixbuf (const GtkTextIter *iter);
  122. GSList  *  gtk_text_iter_get_marks  (const GtkTextIter *iter);
  123.  
  124. GtkTextChildAnchor* gtk_text_iter_get_child_anchor (const GtkTextIter *iter);
  125.  
  126. /* Return list of tags toggled at this point (toggled_on determines
  127.  * whether the list is of on-toggles or off-toggles)
  128.  */
  129. GSList  *gtk_text_iter_get_toggled_tags  (const GtkTextIter  *iter,
  130.                                           gboolean            toggled_on);
  131.  
  132. gboolean gtk_text_iter_begins_tag        (const GtkTextIter  *iter,
  133.                                           GtkTextTag         *tag);
  134.  
  135. gboolean gtk_text_iter_ends_tag          (const GtkTextIter  *iter,
  136.                                           GtkTextTag         *tag);
  137.  
  138. gboolean gtk_text_iter_toggles_tag       (const GtkTextIter  *iter,
  139.                                           GtkTextTag         *tag);
  140.  
  141. gboolean gtk_text_iter_has_tag           (const GtkTextIter   *iter,
  142.                                           GtkTextTag          *tag);
  143. GSList  *gtk_text_iter_get_tags          (const GtkTextIter   *iter);
  144.  
  145. gboolean gtk_text_iter_editable          (const GtkTextIter   *iter,
  146.                                           gboolean             default_setting);
  147. gboolean gtk_text_iter_can_insert        (const GtkTextIter   *iter,
  148.                                           gboolean             default_editability);
  149.  
  150. gboolean gtk_text_iter_starts_word        (const GtkTextIter   *iter);
  151. gboolean gtk_text_iter_ends_word          (const GtkTextIter   *iter);
  152. gboolean gtk_text_iter_inside_word        (const GtkTextIter   *iter);
  153. gboolean gtk_text_iter_starts_sentence    (const GtkTextIter   *iter);
  154. gboolean gtk_text_iter_ends_sentence      (const GtkTextIter   *iter);
  155. gboolean gtk_text_iter_inside_sentence    (const GtkTextIter   *iter);
  156. gboolean gtk_text_iter_starts_line        (const GtkTextIter   *iter);
  157. gboolean gtk_text_iter_ends_line          (const GtkTextIter   *iter);
  158. gboolean gtk_text_iter_is_cursor_position (const GtkTextIter   *iter);
  159.  
  160. gint     gtk_text_iter_get_chars_in_line (const GtkTextIter   *iter);
  161. gint     gtk_text_iter_get_bytes_in_line (const GtkTextIter   *iter);
  162.  
  163. gboolean       gtk_text_iter_get_attributes (const GtkTextIter *iter,
  164.                          GtkTextAttributes *values);
  165. PangoLanguage* gtk_text_iter_get_language   (const GtkTextIter *iter);
  166. gboolean       gtk_text_iter_is_end         (const GtkTextIter *iter);
  167. gboolean       gtk_text_iter_is_start       (const GtkTextIter *iter);
  168.  
  169. /*
  170.  * Moving around the buffer
  171.  */
  172.  
  173. gboolean gtk_text_iter_forward_char         (GtkTextIter *iter);
  174. gboolean gtk_text_iter_backward_char        (GtkTextIter *iter);
  175. gboolean gtk_text_iter_forward_chars        (GtkTextIter *iter,
  176.                                              gint         count);
  177. gboolean gtk_text_iter_backward_chars       (GtkTextIter *iter,
  178.                                              gint         count);
  179. gboolean gtk_text_iter_forward_line         (GtkTextIter *iter);
  180. gboolean gtk_text_iter_backward_line        (GtkTextIter *iter);
  181. gboolean gtk_text_iter_forward_lines        (GtkTextIter *iter,
  182.                                              gint         count);
  183. gboolean gtk_text_iter_backward_lines       (GtkTextIter *iter,
  184.                                              gint         count);
  185. gboolean gtk_text_iter_forward_word_end     (GtkTextIter *iter);
  186. gboolean gtk_text_iter_backward_word_start  (GtkTextIter *iter);
  187. gboolean gtk_text_iter_forward_word_ends    (GtkTextIter *iter,
  188.                                              gint         count);
  189. gboolean gtk_text_iter_backward_word_starts (GtkTextIter *iter,
  190.                                              gint         count);
  191.                                              
  192. gboolean gtk_text_iter_forward_visible_line   (GtkTextIter *iter);
  193. gboolean gtk_text_iter_backward_visible_line  (GtkTextIter *iter);
  194. gboolean gtk_text_iter_forward_visible_lines  (GtkTextIter *iter,
  195.                                                gint         count);
  196. gboolean gtk_text_iter_backward_visible_lines (GtkTextIter *iter,
  197.                                                gint         count);
  198.  
  199. gboolean gtk_text_iter_forward_visible_word_end     (GtkTextIter *iter);
  200. gboolean gtk_text_iter_backward_visible_word_start  (GtkTextIter *iter);
  201. gboolean gtk_text_iter_forward_visible_word_ends    (GtkTextIter *iter,
  202.                                              gint         count);
  203. gboolean gtk_text_iter_backward_visible_word_starts (GtkTextIter *iter,
  204.                                              gint         count);
  205.  
  206. gboolean gtk_text_iter_forward_sentence_end     (GtkTextIter *iter);
  207. gboolean gtk_text_iter_backward_sentence_start  (GtkTextIter *iter);
  208. gboolean gtk_text_iter_forward_sentence_ends    (GtkTextIter *iter,
  209.                                                  gint         count);
  210. gboolean gtk_text_iter_backward_sentence_starts (GtkTextIter *iter,
  211.                                                  gint         count);
  212. /* cursor positions are almost equivalent to chars, but not quite;
  213.  * in some languages, you can't put the cursor between certain
  214.  * chars. Also, you can't put the cursor between \r\n at the end
  215.  * of a line.
  216.  */
  217. gboolean gtk_text_iter_forward_cursor_position   (GtkTextIter *iter);
  218. gboolean gtk_text_iter_backward_cursor_position  (GtkTextIter *iter);
  219. gboolean gtk_text_iter_forward_cursor_positions  (GtkTextIter *iter,
  220.                                                   gint         count);
  221. gboolean gtk_text_iter_backward_cursor_positions (GtkTextIter *iter,
  222.                                                   gint         count);
  223.  
  224. gboolean gtk_text_iter_forward_visible_cursor_position   (GtkTextIter *iter);
  225. gboolean gtk_text_iter_backward_visible_cursor_position  (GtkTextIter *iter);
  226. gboolean gtk_text_iter_forward_visible_cursor_positions  (GtkTextIter *iter,
  227.                                                           gint         count);
  228. gboolean gtk_text_iter_backward_visible_cursor_positions (GtkTextIter *iter,
  229.                                                           gint         count);
  230.  
  231.  
  232. void     gtk_text_iter_set_offset         (GtkTextIter *iter,
  233.                                            gint         char_offset);
  234. void     gtk_text_iter_set_line           (GtkTextIter *iter,
  235.                                            gint         line_number);
  236. void     gtk_text_iter_set_line_offset    (GtkTextIter *iter,
  237.                                            gint         char_on_line);
  238. void     gtk_text_iter_set_line_index     (GtkTextIter *iter,
  239.                                            gint         byte_on_line);
  240. void     gtk_text_iter_forward_to_end     (GtkTextIter *iter);
  241. gboolean gtk_text_iter_forward_to_line_end (GtkTextIter *iter);
  242.  
  243. void     gtk_text_iter_set_visible_line_offset (GtkTextIter *iter,
  244.                                                 gint         char_on_line);
  245. void     gtk_text_iter_set_visible_line_index  (GtkTextIter *iter,
  246.                                                 gint         byte_on_line);
  247.  
  248. /* returns TRUE if a toggle was found; NULL for the tag pointer
  249.  * means "any tag toggle", otherwise the next toggle of the
  250.  * specified tag is located.
  251.  */
  252. gboolean gtk_text_iter_forward_to_tag_toggle (GtkTextIter *iter,
  253.                                               GtkTextTag  *tag);
  254.  
  255. gboolean gtk_text_iter_backward_to_tag_toggle (GtkTextIter *iter,
  256.                                                GtkTextTag  *tag);
  257.  
  258. typedef gboolean (* GtkTextCharPredicate) (gunichar ch, gpointer user_data);
  259.  
  260. gboolean gtk_text_iter_forward_find_char  (GtkTextIter          *iter,
  261.                                            GtkTextCharPredicate  pred,
  262.                                            gpointer              user_data,
  263.                                            const GtkTextIter    *limit);
  264. gboolean gtk_text_iter_backward_find_char (GtkTextIter          *iter,
  265.                                            GtkTextCharPredicate  pred,
  266.                                            gpointer              user_data,
  267.                                            const GtkTextIter    *limit);
  268.  
  269. gboolean gtk_text_iter_forward_search  (const GtkTextIter *iter,
  270.                                         const gchar       *str,
  271.                                         GtkTextSearchFlags flags,
  272.                                         GtkTextIter       *match_start,
  273.                                         GtkTextIter       *match_end,
  274.                                         const GtkTextIter *limit);
  275.  
  276. gboolean gtk_text_iter_backward_search (const GtkTextIter *iter,
  277.                                         const gchar       *str,
  278.                                         GtkTextSearchFlags flags,
  279.                                         GtkTextIter       *match_start,
  280.                                         GtkTextIter       *match_end,
  281.                                         const GtkTextIter *limit);
  282.  
  283.  
  284. /*
  285.  * Comparisons
  286.  */
  287. gboolean gtk_text_iter_equal           (const GtkTextIter *lhs,
  288.                                         const GtkTextIter *rhs);
  289. gint     gtk_text_iter_compare         (const GtkTextIter *lhs,
  290.                                         const GtkTextIter *rhs);
  291. gboolean gtk_text_iter_in_range        (const GtkTextIter *iter,
  292.                                         const GtkTextIter *start,
  293.                                         const GtkTextIter *end);
  294.  
  295. /* Put these two in ascending order */
  296. void     gtk_text_iter_order           (GtkTextIter *first,
  297.                                         GtkTextIter *second);
  298.  
  299. G_END_DECLS
  300.  
  301. #endif
  302.  
  303.  
  304.